package main
import (
	"fmt"
	"strconv"
)
func main() {
	// 格式化字符串
	price := 59.8
	//s := fmt.Sprintf("价格:%.1f",price)
	s := fmt.Sprintf("%1.f",price) //59.8 保留一位小数
	fmt.Println(s)

	//整型转字符串
	var n1 int = 100
	//strconv.Itoa()可以将整型转换为字符串
	s0 := strconv.Itoa(n1)
	fmt.Printf("n1=%s,类型是%T\n",s0,s0)
	//字符串转整型
	str := "18a"
	fmt.Printf("str=%s,类型是%T\n",str,str)
	//strconv.Atoi()可以将字符串转换为整型
	//转换后返回两个值，第一个值是转换后的字符串，第二个值是转换是否成功
	n,err := strconv.Atoi(str)
	fmt.Println("成功:",n)
	//如果转换成功，返回的err为nil
	//如果转换失败，返回的err不为nil,可以通过err.Error()获取错误信息
	fmt.Println("错误:",err)
	//浮点型转字符串
    f1 := 3.14
	//参数1: 要转换的字符串
	//参数2: 转换的格式
	//参数3: 保留的小数位
	//参数4: 转换的类型
	s1 := strconv.FormatFloat(f1,'f',1,64)
	fmt.Println(s1)
	//字符串转浮点型
	s2 := "3.14159"
	f2,err := strconv.ParseFloat(s2,64)
	fmt.Println("成功:",f2)
	fmt.Println("错误:",err)
	//字符串转布尔型
	f3 := "true"
	b1,err := strconv.ParseBool(f3)
	fmt.Println("成功:",b1)
	//如果转换成功，返回的err为nil
	//如果转换失败，返回的b1为false,因为：false是布尔型的默认值
	//如果转换失败，返回的err不为nil,可以通过err.Error()获取错误信息
	fmt.Println("错误:",err)
    //布尔型转字符串
	b2 := true
	f4 := strconv.FormatBool(b2)  //true
	fmt.Printf("f4=%s,类型是%T\n",f4,f4)

}